package com.ycq.parser;

import com.ycq.parser.attribute.AttributeKey;

import java.util.List;

/**
 * 问题节点
 *
 * @author ycq
 * @date 2025/9/24 13:10
 */
public interface QuestionNode {

    /**
     *  问题类型
     *
     *   SINGLE(1, "单选"),
     *
     *   MULTIPLE(2, "多选"),
     *
     *   SHARE_QUESTION(3, "共用题干单选"),
     *
     *   SHARE_OPTION(4, "共用选项"),
     *
     *   Q_A(5, "问答"),
     *
     *   SHARE_QUESTION_MULTIPLE(6, "共用题干多选"),
     *
     *   SHARE_QUESTION_Q_A(61, "共用题干-问答"),
     *
     *   FILL_BLANK(7, "填空"),
     */
    int getQuestionType();
    int getQuestionKindType();

    /**
     * 问题编号 如 001 002等
     * @return
     */
    String getQuestionCode();

    /**
     * 获取问题中包含的图片
     */
    List<ImageInfo> getImages();

    /**
     *  获取题目属性，例如 【答案、解析、破题思路、难度系数、考频规律】等
     */
    <T> T getAttribute(AttributeKey<T> key);

    /**
     *  获取原始题目
     */
    String getRawQuestion();

    /**
     * 获取问题每行的文本内容
     */
    List<String> getQuestionLines();

}
